static QString current_tag;
static vmem_t cdatastr;
-static gbfile *ifd;
-static xg_tag_mapping *xg_tag_tbl;
-static const char **xg_ignore_taglist;
+static gbfile* ifd;
+static xg_tag_mapping* xg_tag_tbl;
+static const char** xg_ignore_taglist;
#define MY_CBUF 4096
#define MYNAME "XML Reader"
void
-write_xml_header(gbfile *ofd)
+write_xml_header(gbfile* ofd)
{
char buff[128];
- cet_cs_vec_t *cs = cet_find_cs_by_name(CET_CHARSET_ASCII);
+ cet_cs_vec_t* cs = cet_find_cs_by_name(CET_CHARSET_ASCII);
if ((global_opts.charset != NULL) && (global_opts.charset != cs)) {
snprintf(buff, sizeof(buff), " encoding=\"%s\"", global_opts.charset_name);
}
void
-write_xml_entity(gbfile *ofd, const QString& indent,
+write_xml_entity(gbfile* ofd, const QString& indent,
const QString& tag, const QString& value)
{
- char *tmp_ent = xml_entitize(value.toLatin1().data());
+ char* tmp_ent = xml_entitize(value.toLatin1().data());
gbfprintf(ofd, "%s<%s>%s</%s>\n", qPrintable(indent), qPrintable(tag), tmp_ent, qPrintable(tag));
xfree(tmp_ent);
}
void
-write_optional_xml_entity(gbfile *ofd, const QString& indent,
+write_optional_xml_entity(gbfile* ofd, const QString& indent,
const QString& tag, const QString& value)
{
if (!value.isEmpty()) {
}
void
-write_xml_entity_begin0(gbfile *ofd, const QString& indent,
+write_xml_entity_begin0(gbfile* ofd, const QString& indent,
const QString& tag)
{
gbfprintf(ofd, "%s<%s>\n", indent.toLatin1().data(), tag.toLatin1().data());
}
void
-write_xml_entity_begin1(gbfile *ofd, const QString& indent,
+write_xml_entity_begin1(gbfile* ofd, const QString& indent,
const QString& tag, const QString& attr,
const QString& attrval)
{
}
void
-write_xml_entity_begin2(gbfile *ofd, const QString& indent,
+write_xml_entity_begin2(gbfile* ofd, const QString& indent,
const QString& tag, const QString& attr1,
const QString& attrval1, const QString& attr2,
const QString& attrval2)
}
void
-write_xml_entity_end(gbfile *ofd, const QString& indent,
+write_xml_entity_end(gbfile* ofd, const QString& indent,
const QString& tag)
{
gbfprintf(ofd, "%s</%s>\n", indent.toLatin1().data(), tag.toLatin1().data());
}
void
-xml_write_time(gbfile *ofd, gpsbabel::DateTime dt, const char *elname)
+xml_write_time(gbfile* ofd, gpsbabel::DateTime dt, const char* elname)
{
gbfprintf(ofd, "<%s>%s</%s>\n",
elname,
* xml strains and insulates us from a lot of the grubbiness of expat.
*/
-xg_callback *
+xg_callback*
xml_tbl_lookup(const QString& tag, xg_cb_type cb_type)
{
- xg_tag_mapping *tm;
+ xg_tag_mapping* tm;
for (tm = xg_tag_tbl; tm->tag_cb != NULL; tm++) {
if (str_match(tag.toUtf8().data(), tm->tag_name) && (cb_type == tm->cb_type)) {
return tm->tag_cb;
* Returns 0 if it is not on the list.
*/
static int
-xml_consider_ignoring(const char *t)
+xml_consider_ignoring(const char* t)
{
- const char **il;
+ const char** il;
if (!xg_ignore_taglist) {
return 0;
static void
-xml_start(void *data, const XML_Char *xml_el, const XML_Char **xml_attr)
+xml_start(void* data, const XML_Char* xml_el, const XML_Char** xml_attr)
{
- xg_callback *cb;
- const char *el;
- const char **attrs;
+ xg_callback* cb;
+ const char* el;
+ const char** attrs;
el = xml_convert_to_char_string(xml_el);
attrs = xml_convert_attrs_to_char_string(xml_attr);
#if 1
static void
-xml_cdata(void *dta, const XML_Char *xml_s, int len)
+xml_cdata(void* dta, const XML_Char* xml_s, int len)
{
- char *estr;
- const char *s = xml_convert_to_char_string_n(xml_s, &len);
+ char* estr;
+ const char* s = xml_convert_to_char_string_n(xml_s, &len);
vmem_realloc(&cdatastr, 1 + len + strlen(cdatastr.mem));
- estr = (char *) cdatastr.mem + strlen(cdatastr.mem);
+ estr = (char*) cdatastr.mem + strlen(cdatastr.mem);
memcpy(estr, s, len);
estr[len] = 0;
xml_free_converted_string(s);
}
static void
-xml_end(void *data, const XML_Char *xml_el)
+xml_end(void* data, const XML_Char* xml_el)
{
int pos = current_tag.lastIndexOf('/');
QString s = current_tag.mid(pos + 1);
- const char *el = xml_convert_to_char_string(xml_el);
- xg_callback *cb;
+ const char* el = xml_convert_to_char_string(xml_el);
+ xg_callback* cb;
if (xml_consider_ignoring(el)) {
return;
#endif
cb = xml_tbl_lookup(current_tag, cb_cdata);
if (cb) {
- (*cb)((char *) cdatastr.mem, NULL);
+ (*cb)((char*) cdatastr.mem, NULL);
}
cb = xml_tbl_lookup(current_tag, cb_end);
char buf[MY_CBUF];
while ((len = gbfread(buf, 1, sizeof(buf), ifd))) {
- char *str = buf;
+ char* str = buf;
if (ifd->unicode) {
- str = cet_str_uni_to_utf8((short *)&buf, len >> 1);
+ str = cet_str_uni_to_utf8((short*)&buf, len >> 1);
len = strlen(str);
}
if (!XML_Parse(psr, str, len, gbfeof(ifd))) {
}
-void xml_readstring(char *str)
+void xml_readstring(char* str)
{
int len = strlen(str);
if (!XML_Parse(psr, str, len, 1)) {
XML_ParserFree(psr);
}
-void xml_readprefixstring(const char *str)
+void xml_readprefixstring(const char* str)
{
int len = strlen(str);
if (!XML_Parse(psr, str, len, 0)) {
}
}
-void xml_ignore_tags(const char **taglist)
+void xml_ignore_tags(const char** taglist)
{
xg_ignore_taglist = taglist;
}
void
-xml_init0(const char *fname, xg_tag_mapping *tbl, const char *encoding,
+xml_init0(const char* fname, xg_tag_mapping* tbl, const char* encoding,
gbsize_t offset)
{
if (fname) {
current_tag.clear();
- psr = XML_ParserCreate((const XML_Char *)encoding);
+ psr = XML_ParserCreate((const XML_Char*)encoding);
if (!psr) {
fatal(MYNAME ": Cannot create XML Parser\n");
}
cdatastr = vmem_alloc(1, 0);
- *((char *)cdatastr.mem) = '\0';
+ *((char*)cdatastr.mem) = '\0';
xg_tag_tbl = tbl;
/* xml_init0 iwth a default seek argument of zero */
void
-xml_init(const char *fname, xg_tag_mapping *tbl, const char *encoding)
+xml_init(const char* fname, xg_tag_mapping* tbl, const char* encoding)
{
xml_init0(fname, tbl, encoding, 0);
}
void
-xml_init_offset(const char *fname, xg_tag_mapping *tbl, const char *encoding,
+xml_init_offset(const char* fname, xg_tag_mapping* tbl, const char* encoding,
gbsize_t offset)
{
xml_init0(fname, tbl, encoding, offset);
#else
-static const char *rd_fname;
+static const char* rd_fname;
static QXmlStreamReader reader;
void
-xml_init(const char *fname, xg_tag_mapping *tbl, const char *encoding)
+xml_init(const char* fname, xg_tag_mapping* tbl, const char* encoding)
{
rd_fname = fname;
xg_tag_tbl = tbl;
QString current_tag;
while (!reader.atEnd()) {
- xg_callback *cb = xml_tbl_lookup(current_tag, cb_start);
switch (reader.tokenType()) {
- case QXmlStreamReader::StartElement: {
- if (cb) {
- const char **attrs;
- (*cb)(NULL, attrs);
- }
- current_tag.append("/");
- current_tag.append(reader.name());
- cb = xml_tbl_lookup(current_tag, cb_cdata);
- if (cb) {
- QString c = reader.readElementText();
- (*cb)(c.toUtf8().data(), NULL);
- current_tag.chop(reader.name().length() + 1);
- }
- }
- break;
- case QXmlStreamReader::Characters:
- break;
- case QXmlStreamReader::EndElement:
- cb = xml_tbl_lookup(current_tag, cb_end);
- if (cb) {
- (*cb)(NULL, NULL);
- }
+ case QXmlStreamReader::StartElement: {
+ current_tag.append("/");
+ current_tag.append(reader.name());
+ xg_callback* cb = xml_tbl_lookup(current_tag, cb_start);
+ if (cb) {
+ const char** attrs;
+ (*cb)(NULL, attrs);
+ }
+ cb = xml_tbl_lookup(current_tag, cb_cdata);
+ if (cb) {
+ QString c = reader.readElementText();
+ (*cb)(c.toUtf8().data(), NULL);
current_tag.chop(reader.name().length() + 1);
- break;
- default:
- break;
+ }
+ }
+ break;
+ case QXmlStreamReader::Characters:
+ break;
+ case QXmlStreamReader::EndElement: {
+ xg_callback* cb = xml_tbl_lookup(current_tag, cb_end);
+ if (cb) {
+ (*cb)(NULL, NULL);
+ }
+ current_tag.chop(reader.name().length() + 1);
+ }
+ break;
+ default:
+ break;
};
reader.readNextStartElement();
}
}
-void xml_ignore_tags(const char **taglist)
+void xml_ignore_tags(const char** taglist)
{
xg_ignore_taglist = taglist;
}
-void xml_readprefixstring(const char *str)
+void xml_readprefixstring(const char* str)
{
}
-void xml_readstring(char *str)
+void xml_readstring(char* str)
{
}